package com.haixiaoke.saas.contract.mapper;


import com.haixiaoke.saas.contract.domain.ProprietorContract;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业主合同管理Mapper接口
 *
 * @author xiaolong
 * @date 2024-05-27
 */
public interface ProprietorContractMapper {
    /**
     * 查询业主合同管理
     *
     * @param proprietorContractId 业主合同管理主键
     * @return 业主合同管理
     */
    ProprietorContract selectProprietorContractByProprietorContractId(String proprietorContractId);

    /**
     * 查询业主合同管理列表
     *
     * @param proprietorContract 业主合同管理
     * @return 业主合同管理集合
     */
    List<ProprietorContract> selectProprietorContractList(ProprietorContract proprietorContract);

    /**
     * 新增业主合同管理
     *
     * @param proprietorContract 业主合同管理
     * @return 结果
     */
    int insertProprietorContract(ProprietorContract proprietorContract);

    /**
     * 修改业主合同管理
     *
     * @param proprietorContract 业主合同管理
     * @return 结果
     */
    int updateProprietorContract(ProprietorContract proprietorContract);

    /**
     * 删除业主合同管理
     *
     * @param proprietorContractId 业主合同管理主键
     * @return 结果
     */
    int deleteProprietorContractByProprietorContractId(String proprietorContractId);

    /**
     * 批量删除业主合同管理
     *
     * @param proprietorContractIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteProprietorContractByProprietorContractIds(String[] proprietorContractIds);

    List<ProprietorContract> selectProprietorContractByProprietorContractIds(ProprietorContract proprietorContract);

    List<ProprietorContract> selectProprietorContractByProprietorUserId(ProprietorContract proprietorContract);

    int updateProprietorContractByProprietorContractId(String proprietorContractId);

    /**
     * 每天凌晨10分执行业主合同逾期定时任务
     */
    List<ProprietorContract> selectProprietorContractOverdueTask();


    int updateBatchLesseeContractByStatus(@Param("proprietorContractIdList") List<String> proprietorContractIdList, @Param("contractStatus") String contractStatus);

    ProprietorContract selectProprietorContractByFlowId(String flowId);
}
